package com.thingsgrid.device.entity;

import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import java.io.Serializable;
import java.util.List;

@Data
@Document(collection = "device")
public class Device implements Serializable {
	/**
	 * 设备ID
	 */
	@Field("device_id")
	private String deviceId;

	/**
	 * 设备SN码
	 */
	@Field("device_sncode")
	private String deviceSncode;

	/**
	 * 设备名称
	 */
	@Field("device_name")
	private String deviceName;

	/**
	 * 所属产品
	 */
	@Field("product_id")
	private String productId;

	/**
	 *所属设备
	 */
	@Field("parent_device_id")
	private String parentDeviceId;

	/**
	 *生产厂商
	 */
	@Field("device_firm")
	private String deviceFirm;

	/**
	 *设备型号
	 */
	@Field("device_type")
	private String deviceType;

	/**
	 *固件版本
	 */
	@Field("firmware_version")
	private double firmwareVersion;

	/**
	 *激活时间
	 */
	@Field("active_time")
	private String activeTime;

	/**
	 *运营单位
	 */
	@Field("operate_unit")
	private String operateUnit;

	/**
	 *维护人员
	 */
	@Field("maintain_person")
	private String maintainPerson;

	/**
	 *维护人员联系电话
	 */
	@Field("maintain_person_phone")
	private String maintainPersonPhone;

	/**
	 *所属省份（直辖市）
	 */
	@Field("province")
	private String province;


	/**
	 *所属城市
	 */
	@Field("city")
	private String city;

	/**
	 *所属区域
	 */
	@Field("region")
	private String region;

	/**
	 *经度
	 */
	@Field("longitude")
	private String longitude;

	/**
	 *纬度
	 */
	@Field("dimension")
	private String dimension;

	/**
	 *设备IP
	 */
	@Field("ip_address")
	private String ipAddress;

	/**
	 *状态
	 */
	@Field("stats")
	private Integer stats;

	/**
	 *创建人
	 */
	@Field("founder")
	private String founder;

	/**
	 *创建部门
	 */
	@Field("creating_departments")
	private String creatingDepartments;

	/**
	 *描述
	 */
	@Field("describe")
	private String describe;

	/**
	 *开关机状态
	 */
	@Field("start_stats")
	private Integer startStats;

	/**
	 *设备属性
	 */
	@Field("device_attribute")
	private String deviceAttribute;

	/**
	 *设备服务
	 */
	@Field("device_service")
	private String deviceService;

	/**
	 *设备事件
	 */
	@Field("device_event")
	private String deviceEvent;

	@Field("device_shadow")
	private DeviceShadow deviceShadow;

	/**
	 * 发布状态
	 */
	@Field("is_publish")
	private String isPublish;

	/**
	 *创建日期
	 */
	@Field("create_time")
	private String createTime;

	private List<DeviceItem> slaveDeviceIdList;

	/**
	 * 设备key
	 */
	private String deviceSecret;

	/**
	 * 所属产品类型
	 */
	private String productPointType;

	/**
	 * 在线状态
	 */
	//在线状态
	private String onlineState;

}
